c++

您所在的位置:网站首页 hides in c++

c++

2024-07-10 16:26| 来源: 网络整理| 查看: 265

我们将从简单的开始。

p1是一个Parent指针,所以它总是会调用Parent的成员函数。

cp是指向 的指针Child,因此它总是会调用Child的成员函数。

现在更难的一个。p2是一个Parent指针,但它指向一个类型的对象,所以只要匹配的函数是虚函数或者该函数只存在于而不存在于中Child,它就会调用的函数。换句话说,用它自己的隐藏,但它会覆盖。函数隐藏有时被认为是函数重载的一种形式,因为同名的函数被赋予了不同的实现。因为隐藏函数与隐藏函数在不同的类中,所以它确实有不同的签名,这使得使用哪个更清楚。ChildParentChildParentChildParent::doA()doA()Parent::doB()

的输出testStuff()将是

doA in Parent doA in Parent doA in Child doB in Parent doB in Child doB in Child

在任何情况下,无论函数的“虚拟性”如何,都可以在使用名称解析中Parent::doA()调用Parent::doB()。Child功能

void Child::doX() { doA(); doB(); Parent::doA(); Parent::doB(); cout Parent::doA()将调用Parent的版本doA()。

p2不能引用,doX()因为它是一个Parent*,并且Parent不知道Child. 但是,p2可以强制转换为 a Child*,因为它被初始化为 1,然后它可以用来调用doX()。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3